home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / iutil / dblocks.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-06-12  |  1.1 KB  |  59 lines

  1. # include    <ingres.h>
  2. # include    <lock.h>
  3. # include    <sccs.h>
  4.  
  5. SCCSID(@(#)dblocks.c    8.2    6/12/88)
  6.  
  7. struct    lockreq    Lock;
  8. /*
  9.  *    setdbl - set data base lock for either exclusive or shared
  10.  *         access.
  11.  */
  12. setdbl(act, mod)
  13. char    act;            /* type request */
  14. char    mod;            /* mod of lock: = 1 for exclusive, = 2 for shared*/
  15. {
  16.     register char    *r;
  17.     register int    i;
  18.     auto    int    ret_val;
  19.  
  20. #    ifdef xATR1
  21.     if ( tTf(28,6) )
  22.         printf(" setdbl act=%o md=%o\n", act, mod);
  23. #    endif
  24.     if (Alockdes < 0)
  25.         return (1);
  26.     Lock.lract = act;        /* type of request */
  27.     Lock.lrtype = T_DB;        /* data base lock */
  28.     Lock.lrmod = mod;        /* exclusive or shared */
  29.                     /* zero out rest of key */
  30.     r = Lock.lrel;
  31.     for (i = 0; i < 8; i++)
  32.         *r++ = 0;
  33.     ret_val = dolock(&Lock);
  34.     return (ret_val);
  35. }
  36. /*
  37.  *    unldb    - release the data base lock
  38.  */
  39. unldb()
  40. {
  41.     register char    *r;
  42.     register int    i;
  43.     auto    int    ret_val;
  44.  
  45. #    ifdef xATR1
  46.     if (tTf(28, 7))
  47.         printf(" unldb\n");
  48. #    endif
  49.     if (Alockdes < 0)
  50.         return (1);
  51.     Lock.lract = A_RLS1;        /* release 1 lock */
  52.     Lock.lrtype = T_DB;        /* a data base lock*/
  53.     r = Lock.lrel;
  54.     for (i = 0; i < 8; i++)        /* zero out part of key*/
  55.         *r++ = 0;
  56.     ret_val = dolock(&Lock);
  57.     return (ret_val);
  58. }
  59.